#include "userDao.h"

void saveUser(User *user)
{
    sqlite3 *db = NULL;
    int res = sqlite3_open("/home/heron/ronghuanet_ads/t.db", &db);
    if (res != 0)
    {
        perror("open db error");
        return ;
    }

    char *sql = (char *)calloc(1, 256);
    sprintf(sql, "insert into t_user(id, name) values(%d, '%s')", user->id, user->name);

    char *errmsg;
    sqlite3_exec(db, sql, NULL, NULL, &errmsg);
    if (errmsg != NULL)
    {
        printf("%s\n", errmsg);
    }

    //释放内存
    sqlite3_close(db);
    
    
}

void getAllUser()
{
    sqlite3 *db = NULL;

    int res = sqlite3_open("/home/heron/ronghuanet_ads/t.db", &db);
    if (res != 0)
    {
        perror("open db error");
        return ;
    }

    char *sql = "select * from t_user";
    char *errmsg;
    int row;
    int col;
    //结果集
    char **result;
    sqlite3_get_table(db, sql, &result, &row, &col, &errmsg);

    //打印列与行 --> 列没有算表头
    printf("row total count:%d\n", row);
    printf("col total count:%d\n", col);

//     //打印数据的第一种方法
//     int  index = col;    //前面的是列名 
//     // dbResult 第一行数据是字段名称，从 nColumn 索引开始才是真正的数据
//     printf( "查到%d条记录\n", row );
//     for(  int i = 0; i < row ; i++ )
//     {
//          printf("第 %d 条记录\n", i+1 );
//          for( int j = 0 ; j < col; j++ )
//          {
//               printf( "字段名:%s  >  字段值:%s\n",  result[j], result [index] );    
//               ++index;
//               // dbResult 的字段值是连续的，从第0索引到第 nColumn - 1索引都是字段名称，
//               // 从第 nColumn 索引开始，后面都是字段值
//          }
//     }

    //打印数据第二种方法
    int i, j;
    for(i = 0; i <= row; i++) {
        for(j = 0; j < col; j++) {
            int temp=i * col + j; //0 1 2 3 4 5 6 7 8
            //printf("%s ---%d---%d---%d", result[temp],i,j,temp);
            printf("%s ---%d\n", result[temp],temp);
        }
        printf("\n");
    } 
}